<!--

     Licensed to the Apache Software Foundation (ASF) under one
     or more contributor license agreements.  See the NOTICE file
     distributed with this work for additional information
     regarding copyright ownership.  The ASF licenses this file
     to you under the Apache License, Version 2.0 (the
     "License"); you may not use this file except in compliance
     with the License.  You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

     Unless required by applicable law or agreed to in writing,
     software distributed under the License is distributed on an
     "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
     KIND, either express or implied.  See the License for the
     specific language governing permissions and limitations
     under the License.

-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- **************************************************************** -->
<!-- *  PLEASE KEEP COMPLICATED EXPRESSIONS OUT OF THESE TEMPLATES, * -->
<!-- *  i.e. only iterate & print data where possible. Thanks, Jez. * -->
<!-- **************************************************************** -->

<html>
<head>
    <!-- Generated by groovydoc (2.4.5) on Mon Sep 12 08:35:24 CEST 2016 -->
    <title>ServiceDiscovery (Groovy Documentation)</title>
    <meta name="date" content="2016-09-12">
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <link href="../../../../groovy.ico" type="image/x-icon" rel="shortcut icon">
    <link href="../../../../groovy.ico" type="image/x-icon" rel="icon">
    <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">

<body class="center">
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
    parent.document.title="ServiceDiscovery (Groovy Documentation)";
}
//-->
</script>
<noscript>
    <div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
    <!--   -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
    <!--   -->
</a>
    <ul class="navList" title="Navigation">
        <li><a href="../../../../overview-summary.html">Overview</a></li>
        <li><a href="package-summary.html">Package</a></li>
        <li class="navBarCell1Rev">Class</li>
        <li><a href="../../../../deprecated-list.html">Deprecated</a></li>
        <li><a href="../../../../index-all.html">Index</a></li>
        <li><a href="../../../../help-doc.html">Help</a></li>
    </ul>
</div>

<div class="subNav">
    <div>
        <ul class="navList">
            <li><a href="../../../../index.html?io/vertx/groovy/servicediscovery/ServiceDiscovery" target="_top">Frames</a></li>
            <li><a href="ServiceDiscovery.html" target="_top">No Frames</a></li>
        </ul>
    </div>
    <div>
        <ul class="subNavList">
            <li>Summary:&nbsp;</li>
            Nested&nbsp;&nbsp;&nbsp;Field&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<li><a href="#constructor_summary">Constructor</a></li>&nbsp;&nbsp;&nbsp;<li><a href="#method_summary">Method</a></li>&nbsp;&nbsp;&nbsp;
        </ul>
        <ul class="subNavList">
            <li>&nbsp;|&nbsp;Detail:&nbsp;</li>
            Field&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<li><a href="#constructor_detail">Constructor</a></li>&nbsp;&nbsp;&nbsp;<li><a href="#method_detail">Method</a></li>&nbsp;&nbsp;&nbsp;
        </ul>
    </div>
    <a name="skip-navbar_top">
        <!--   -->
    </a></div>
<!-- ========= END OF TOP NAVBAR ========= -->

<!-- ======== START OF CLASS DATA ======== -->
<div class="header">

    <div class="subTitle">Package: <strong>io.vertx.groovy.servicediscovery</strong></div>

    <h2 title="[Groovy] Class ServiceDiscovery" class="title">[Groovy] Class ServiceDiscovery</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><ul class="inheritance"></ul></li><li>io.vertx.groovy.servicediscovery.ServiceDiscovery
</ul>
<div class="description">
    <ul class="blockList">
        <li class="blockList">



    <p> Service Discovery main entry point.
 <p>
 The service discovery is an infrastructure that let you publish and find `services`. A `service` is a discoverable
 functionality. It can be qualified by its type, metadata, and location. So a `service` can be a database, a
 service proxy, a HTTP endpoint. It does not have to be a vert.x entity, but can be anything. Each service is
 described by a <a href="../../../../../../cheatsheet/Record.html">Record</a>.
 <p>
 The service discovery implements the interactions defined in the service-oriented computing. And to some extend,
 also provides the dynamic service-oriented computing interaction. So, application can react to arrival and
 departure of services.
 <p>
 A service provider can:
 <p>
 * publish a service record
 * un-publish a published record
 * update the status of a published service (down, out of service...)
 <p>
 A service consumer can:
 <p>
 * lookup for services
 * bind to a selected service (it gets a <a href='../../../../io/vertx/groovy/servicediscovery/ServiceReference.html' title='ServiceReference'>ServiceReference</a>) and use it
 * release the service once the consumer is done with it
 * listen for arrival, departure and modification of services.
 <p>
 Consumer would 1) lookup for service record matching their need, 2) retrieve the <a href='../../../../io/vertx/groovy/servicediscovery/ServiceReference.html' title='ServiceReference'>ServiceReference</a> that give access
 to the service, 3) get a service object to access the service, 4) release the service object once done.
 <p>
 A state above, the central piece of information shared by the providers and consumers are <a href="../../../../../../cheatsheet/Record.html">Record</a>.
 <p>
 Providers and consumers must create their own <a href='../../../../io/vertx/groovy/servicediscovery/ServiceDiscovery.html' title='ServiceDiscovery'>ServiceDiscovery</a> instance. These instances are collaborating
 in background (distributed structure) to keep the set of services in sync.
</p>

          </li>
    </ul>
</div>

<div class="summary">
    <ul class="blockList">
        <li class="blockList">
        <!-- =========== NESTED CLASS SUMMARY =========== -->
        

        <!-- =========== ENUM CONSTANT SUMMARY =========== -->
        
        <!-- =========== FIELD SUMMARY =========== -->
        

        <!-- =========== PROPERTY SUMMARY =========== -->
        

        <!-- =========== ELEMENT SUMMARY =========== -->
        

        
        <!-- ======== CONSTRUCTOR SUMMARY ======== -->
        <ul class="blockList">
                <li class="blockList"><a name="constructor_summary"><!--   --></a>
                    <h3>Constructor Summary</h3>
                    <ul class="blockList">
                    <table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructors Summary table">
                        <caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
                        <tr>
                            <th class="colFirst" scope="col">Constructor and description</th>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst">
                                <code><a href="#ServiceDiscovery(java.lang.Object)">ServiceDiscovery</a></strong>
                                (java.lang.Object delegate)</code><br></td>
                        </tr>
                        
                    </table>
                   </ul>
              </li>
        </ul>
        

        
        <!-- ========== METHOD SUMMARY =========== -->
        <ul class="blockList">
            
            <li class="blockList"><a name="method_summary"><!--   --></a>
                    <h3>Methods Summary</h3>
                    <ul class="blockList">
                    <table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Methods Summary table">
                        <caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
                        <tr>
                            <th class="colFirst" scope="col">Type</th>
                            <th class="colLast" scope="col">Name and description</th>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst"><code>java.util.Set&lt;<a href='../../../../io/vertx/groovy/servicediscovery/ServiceReference.html' title='ServiceReference'>ServiceReference</a>&gt;</strong></code></td>
                            <td class="colLast"><code><strong><a href="#bindings()">bindings</a></strong>()</code><br>@return the set of service references retrieved by this service discovery.</td>
                        </tr>
                        
                        <tr class="rowColor">
                            <td class="colFirst"><code>void</strong></code></td>
                            <td class="colLast"><code><strong><a href="#close()">close</a></strong>()</code><br>Closes the service discovery</td>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst"><code>static&nbsp;<a href='../../../../io/vertx/groovy/servicediscovery/ServiceDiscovery.html'>ServiceDiscovery</a></strong></code></td>
                            <td class="colLast"><code><strong><a href="#create(io.vertx.groovy.core.Vertx, Map<String, Object>)">create</a></strong>(<a href='../../../../io/vertx/groovy/core/Vertx.html'>Vertx</a> vertx, java.util.Map&lt;java.lang.String, java.lang.Object&gt; options)</code><br>Creates an instance of <a href='../../../../io/vertx/groovy/servicediscovery/ServiceDiscovery.html' title='ServiceDiscovery'>ServiceDiscovery</a>.</td>
                        </tr>
                        
                        <tr class="rowColor">
                            <td class="colFirst"><code>static&nbsp;<a href='../../../../io/vertx/groovy/servicediscovery/ServiceDiscovery.html'>ServiceDiscovery</a></strong></code></td>
                            <td class="colLast"><code><strong><a href="#create(io.vertx.groovy.core.Vertx)">create</a></strong>(<a href='../../../../io/vertx/groovy/core/Vertx.html'>Vertx</a> vertx)</code><br>Creates a new instance of <a href='../../../../io/vertx/groovy/servicediscovery/ServiceDiscovery.html' title='ServiceDiscovery'>ServiceDiscovery</a> using the default configuration.</td>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst"><code>java.lang.Object</strong></code></td>
                            <td class="colLast"><code><strong><a href="#getDelegate()">getDelegate</a></strong>()</code><br></td>
                        </tr>
                        
                        <tr class="rowColor">
                            <td class="colFirst"><code>void</strong></code></td>
                            <td class="colLast"><code><strong><a href="#getRecord(Map<String, Object>, Handler<AsyncResult<Map<String, Object>>>)">getRecord</a></strong>(java.util.Map&lt;java.lang.String, java.lang.Object&gt; filter, io.vertx.core.Handler&lt;io.vertx.core.AsyncResult&lt;java.util.Map&lt;java.lang.String, java.lang.Object&gt;&gt;&gt; resultHandler)</code><br>Lookups for a single record.</td>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst"><code>void</strong></code></td>
                            <td class="colLast"><code><strong><a href="#getRecord(java.util.function.Function<Map<String, Object>, Boolean>, Handler<AsyncResult<Map<String, Object>>>)">getRecord</a></strong>(java.util.function.Function&lt;java.util.Map&lt;java.lang.String, java.lang.Object&gt;, java.lang.Boolean&gt; filter, io.vertx.core.Handler&lt;io.vertx.core.AsyncResult&lt;java.util.Map&lt;java.lang.String, java.lang.Object&gt;&gt;&gt; resultHandler)</code><br>Lookups for a single record.</td>
                        </tr>
                        
                        <tr class="rowColor">
                            <td class="colFirst"><code>void</strong></code></td>
                            <td class="colLast"><code><strong><a href="#getRecord(java.util.function.Function<Map<String, Object>, Boolean>, boolean, Handler<AsyncResult<Map<String, Object>>>)">getRecord</a></strong>(java.util.function.Function&lt;java.util.Map&lt;java.lang.String, java.lang.Object&gt;, java.lang.Boolean&gt; filter, boolean includeOutOfService, io.vertx.core.Handler&lt;io.vertx.core.AsyncResult&lt;java.util.Map&lt;java.lang.String, java.lang.Object&gt;&gt;&gt; resultHandler)</code><br>Lookups for a single record.</td>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst"><code>void</strong></code></td>
                            <td class="colLast"><code><strong><a href="#getRecords(Map<String, Object>, Handler<AsyncResult<List<Map<String, Object>>>>)">getRecords</a></strong>(java.util.Map&lt;java.lang.String, java.lang.Object&gt; filter, io.vertx.core.Handler&lt;io.vertx.core.AsyncResult&lt;java.util.List&lt;java.util.Map&lt;java.lang.String, java.lang.Object&gt;&gt;&gt;&gt; resultHandler)</code><br>Lookups for a set of records. </td>
                        </tr>
                        
                        <tr class="rowColor">
                            <td class="colFirst"><code>void</strong></code></td>
                            <td class="colLast"><code><strong><a href="#getRecords(java.util.function.Function<Map<String, Object>, Boolean>, Handler<AsyncResult<List<Map<String, Object>>>>)">getRecords</a></strong>(java.util.function.Function&lt;java.util.Map&lt;java.lang.String, java.lang.Object&gt;, java.lang.Boolean&gt; filter, io.vertx.core.Handler&lt;io.vertx.core.AsyncResult&lt;java.util.List&lt;java.util.Map&lt;java.lang.String, java.lang.Object&gt;&gt;&gt;&gt; resultHandler)</code><br>Lookups for a set of records. </td>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst"><code>void</strong></code></td>
                            <td class="colLast"><code><strong><a href="#getRecords(java.util.function.Function<Map<String, Object>, Boolean>, boolean, Handler<AsyncResult<List<Map<String, Object>>>>)">getRecords</a></strong>(java.util.function.Function&lt;java.util.Map&lt;java.lang.String, java.lang.Object&gt;, java.lang.Boolean&gt; filter, boolean includeOutOfService, io.vertx.core.Handler&lt;io.vertx.core.AsyncResult&lt;java.util.List&lt;java.util.Map&lt;java.lang.String, java.lang.Object&gt;&gt;&gt;&gt; resultHandler)</code><br>Lookups for a set of records. </td>
                        </tr>
                        
                        <tr class="rowColor">
                            <td class="colFirst"><code><a href='../../../../io/vertx/groovy/servicediscovery/ServiceReference.html'>ServiceReference</a></strong></code></td>
                            <td class="colLast"><code><strong><a href="#getReference(Map<String, Object>)">getReference</a></strong>(java.util.Map&lt;java.lang.String, java.lang.Object&gt; record = [:])</code><br>Gets a service reference from the given record.</td>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst"><code><a href='../../../../io/vertx/groovy/servicediscovery/ServiceReference.html'>ServiceReference</a></strong></code></td>
                            <td class="colLast"><code><strong><a href="#getReferenceWithConfiguration(Map<String, Object>, Map<String, Object>)">getReferenceWithConfiguration</a></strong>(java.util.Map&lt;java.lang.String, java.lang.Object&gt; record = [:], java.util.Map&lt;java.lang.String, java.lang.Object&gt; configuration)</code><br>Gets a service reference from the given record, the reference is configured with the given json object.</td>
                        </tr>
                        
                        <tr class="rowColor">
                            <td class="colFirst"><code>java.util.Map&lt;java.lang.String, java.lang.Object&gt;</strong></code></td>
                            <td class="colLast"><code><strong><a href="#options()">options</a></strong>()</code><br> <DL><DT><B>Returns:</B></DT><DD>the discovery options.</DD></DL></td>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst"><code>void</strong></code></td>
                            <td class="colLast"><code><strong><a href="#publish(Map<String, Object>, Handler<AsyncResult<Map<String, Object>>>)">publish</a></strong>(java.util.Map&lt;java.lang.String, java.lang.Object&gt; record = [:], io.vertx.core.Handler&lt;io.vertx.core.AsyncResult&lt;java.util.Map&lt;java.lang.String, java.lang.Object&gt;&gt;&gt; resultHandler)</code><br>Publishes a record.</td>
                        </tr>
                        
                        <tr class="rowColor">
                            <td class="colFirst"><code><a href='../../../../io/vertx/groovy/servicediscovery/ServiceDiscovery.html'>ServiceDiscovery</a></strong></code></td>
                            <td class="colLast"><code><strong><a href="#registerServiceExporter(io.vertx.groovy.servicediscovery.spi.ServiceExporter, Map<String, Object>)">registerServiceExporter</a></strong>(<a href='../../../../io/vertx/groovy/servicediscovery/spi/ServiceExporter.html'>ServiceExporter</a> exporter, java.util.Map&lt;java.lang.String, java.lang.Object&gt; configuration)</code><br>Registers a discovery bridge. </td>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst"><code><a href='../../../../io/vertx/groovy/servicediscovery/ServiceDiscovery.html'>ServiceDiscovery</a></strong></code></td>
                            <td class="colLast"><code><strong><a href="#registerServiceExporter(io.vertx.groovy.servicediscovery.spi.ServiceExporter, Map<String, Object>, Handler<AsyncResult<Void>>)">registerServiceExporter</a></strong>(<a href='../../../../io/vertx/groovy/servicediscovery/spi/ServiceExporter.html'>ServiceExporter</a> exporter, java.util.Map&lt;java.lang.String, java.lang.Object&gt; configuration, io.vertx.core.Handler&lt;io.vertx.core.AsyncResult&lt;java.lang.Void&gt;&gt; completionHandler)</code><br>Registers a discovery bridge. </td>
                        </tr>
                        
                        <tr class="rowColor">
                            <td class="colFirst"><code><a href='../../../../io/vertx/groovy/servicediscovery/ServiceDiscovery.html'>ServiceDiscovery</a></strong></code></td>
                            <td class="colLast"><code><strong><a href="#registerServiceImporter(io.vertx.groovy.servicediscovery.spi.ServiceImporter, Map<String, Object>)">registerServiceImporter</a></strong>(<a href='../../../../io/vertx/groovy/servicediscovery/spi/ServiceImporter.html'>ServiceImporter</a> importer, java.util.Map&lt;java.lang.String, java.lang.Object&gt; configuration)</code><br>Registers a discovery service importer. </td>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst"><code><a href='../../../../io/vertx/groovy/servicediscovery/ServiceDiscovery.html'>ServiceDiscovery</a></strong></code></td>
                            <td class="colLast"><code><strong><a href="#registerServiceImporter(io.vertx.groovy.servicediscovery.spi.ServiceImporter, Map<String, Object>, Handler<AsyncResult<Void>>)">registerServiceImporter</a></strong>(<a href='../../../../io/vertx/groovy/servicediscovery/spi/ServiceImporter.html'>ServiceImporter</a> importer, java.util.Map&lt;java.lang.String, java.lang.Object&gt; configuration, io.vertx.core.Handler&lt;io.vertx.core.AsyncResult&lt;java.lang.Void&gt;&gt; completionHandler)</code><br>Registers a discovery service importer. </td>
                        </tr>
                        
                        <tr class="rowColor">
                            <td class="colFirst"><code>boolean</strong></code></td>
                            <td class="colLast"><code><strong><a href="#release(io.vertx.groovy.servicediscovery.ServiceReference)">release</a></strong>(<a href='../../../../io/vertx/groovy/servicediscovery/ServiceReference.html'>ServiceReference</a> reference)</code><br>Releases the service reference.</td>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst"><code>static&nbsp;void</strong></code></td>
                            <td class="colLast"><code><strong><a href="#releaseServiceObject(io.vertx.groovy.servicediscovery.ServiceDiscovery, java.lang.Object)">releaseServiceObject</a></strong>(<a href='../../../../io/vertx/groovy/servicediscovery/ServiceDiscovery.html'>ServiceDiscovery</a> discovery, java.lang.Object svcObject)</code><br>Release the service object retrieved using <code>get</code> methods from the service type interface.
 </td>
                        </tr>
                        
                        <tr class="rowColor">
                            <td class="colFirst"><code>void</strong></code></td>
                            <td class="colLast"><code><strong><a href="#unpublish(java.lang.String, Handler<AsyncResult<Void>>)">unpublish</a></strong>(java.lang.String id, io.vertx.core.Handler&lt;io.vertx.core.AsyncResult&lt;java.lang.Void&gt;&gt; resultHandler)</code><br>Un-publishes a record.</td>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst"><code>void</strong></code></td>
                            <td class="colLast"><code><strong><a href="#update(Map<String, Object>, Handler<AsyncResult<Map<String, Object>>>)">update</a></strong>(java.util.Map&lt;java.lang.String, java.lang.Object&gt; record = [:], io.vertx.core.Handler&lt;io.vertx.core.AsyncResult&lt;java.util.Map&lt;java.lang.String, java.lang.Object&gt;&gt;&gt; resultHandler)</code><br>Updates the given record. </td>
                        </tr>
                        
                    </table>
                   </ul>
              </li>
            
            <li class="blockList"><a name="method_summary"><!--   --></a>
                    <h3>Inherited Methods Summary</h3>
                    <ul class="blockList">
                    <table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Inherited Methods Summary table">
                        <caption><span>Inherited Methods</span><span class="tabEnd">&nbsp;</span></caption>
                        <tr>
                            <th class="colFirst" scope="col">Methods inherited from class</th>
                            <th class="colLast" scope="col">Name</th>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst"><code>class java.lang.Object</strong></code></td>
                            <td class="colLast"><code>java.lang.Object#wait(long, int), java.lang.Object#wait(long), java.lang.Object#wait(), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll()</code></td>
                        </tr>
                    </table>
                   </ul>
              </li>
                
        </ul>
        
    </li>
    </ul>
</div>

<div class="details">
    <ul class="blockList">
        <li class="blockList">
           

            

            

            

            
            <!-- =========== CONSTRUCTOR DETAIL =========== -->
            <ul class="blockList">
                <li class="blockList"><a name="constructor_detail">
                    <!--   -->
                </a>
                    <h3>Constructor Detail</h3>
                    
                        <a name="ServiceDiscovery(java.lang.Object)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4><strong>ServiceDiscovery</strong>(java.lang.Object delegate)</h4>
                                <p></p>
                            </li>
                        </ul>
                    
                </li>
            </ul>
            


            
            <!-- =========== METHOD DETAIL =========== -->
            <ul class="blockList">
                <li class="blockList"><a name="method_detail">
                    <!--   -->
                </a>
                    <h3>Method Detail</h3>
                    
                        <a name="bindings()"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>java.util.Set&lt;<a href='../../../../io/vertx/groovy/servicediscovery/ServiceReference.html' title='ServiceReference'>ServiceReference</a>&gt; <strong>bindings</strong>()</h4>
                                <p>
   <DL><DT><B>Returns:</B></DT><DD>the set of service references retrieved by this service discovery.</DD></DL></p>
                            </li>
                        </ul>
                    
                        <a name="close()"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>void <strong>close</strong>()</h4>
                                <p> Closes the service discovery
   </p>
                            </li>
                        </ul>
                    
                        <a name="create(io.vertx.groovy.core.Vertx, Map<String, Object>)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>static&nbsp;<a href='../../../../io/vertx/groovy/servicediscovery/ServiceDiscovery.html'>ServiceDiscovery</a> <strong>create</strong>(<a href='../../../../io/vertx/groovy/core/Vertx.html'>Vertx</a> vertx, java.util.Map&lt;java.lang.String, java.lang.Object&gt; options)</h4>
                                <p> Creates an instance of <a href='../../../../io/vertx/groovy/servicediscovery/ServiceDiscovery.html' title='ServiceDiscovery'>ServiceDiscovery</a>.
   <DL><DT><B>Returns:</B></DT><DD>the created service discovery instance.</DD></DL><DL><DT><B>Parameters:</B></DT><DD><code>vertx</code> -  the vert.x instance</DD><DD><code>options</code> -  the discovery options (see <a href="../../../../../../cheatsheet/ServiceDiscoveryOptions.html">ServiceDiscoveryOptions</a>)</DD></DL></p>
                            </li>
                        </ul>
                    
                        <a name="create(io.vertx.groovy.core.Vertx)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>static&nbsp;<a href='../../../../io/vertx/groovy/servicediscovery/ServiceDiscovery.html'>ServiceDiscovery</a> <strong>create</strong>(<a href='../../../../io/vertx/groovy/core/Vertx.html'>Vertx</a> vertx)</h4>
                                <p> Creates a new instance of <a href='../../../../io/vertx/groovy/servicediscovery/ServiceDiscovery.html' title='ServiceDiscovery'>ServiceDiscovery</a> using the default configuration.
   <DL><DT><B>Returns:</B></DT><DD>the created instance</DD></DL><DL><DT><B>Parameters:</B></DT><DD><code>vertx</code> -  the vert.x instance</DD></DL></p>
                            </li>
                        </ul>
                    
                        <a name="getDelegate()"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>java.lang.Object <strong>getDelegate</strong>()</h4>
                                <p></p>
                            </li>
                        </ul>
                    
                        <a name="getRecord(Map<String, Object>, Handler<AsyncResult<Map<String, Object>>>)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>void <strong>getRecord</strong>(java.util.Map&lt;java.lang.String, java.lang.Object&gt; filter, io.vertx.core.Handler&lt;io.vertx.core.AsyncResult&lt;java.util.Map&lt;java.lang.String, java.lang.Object&gt;&gt;&gt; resultHandler)</h4>
                                <p> Lookups for a single record.
 <p>
 Filters are expressed using a Json object. Each entry of the given filter will be checked against the record.
 All entry must match exactly the record. The entry can use the special "*" value to denotes a requirement on the
 key, but not on the value.
 <p>
 Let's take some example:
 <pre>
   { "name" = "a" } => matches records with name set fo "a"
   { "color" = "*" } => matches records with "color" set
   { "color" = "red" } => only matches records with "color" set to "red"
   { "color" = "red", "name" = "a"} => only matches records with name set to "a", and color set to "red"
 </pre>
 <p>
 If the filter is not set (<code>null</code> or empty), it accepts all records.
 <p>
 This method returns the first matching record.
   <DL><DT><B>Parameters:</B></DT><DD><code>filter</code> -  the filter.</DD><DD><code>resultHandler</code> -  handler called when the lookup has been completed. When there are no matching record, the operation succeed, but the async result has no result.</DD></DL></p>
                            </li>
                        </ul>
                    
                        <a name="getRecord(java.util.function.Function<Map<String, Object>, Boolean>, Handler<AsyncResult<Map<String, Object>>>)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>void <strong>getRecord</strong>(java.util.function.Function&lt;java.util.Map&lt;java.lang.String, java.lang.Object&gt;, java.lang.Boolean&gt; filter, io.vertx.core.Handler&lt;io.vertx.core.AsyncResult&lt;java.util.Map&lt;java.lang.String, java.lang.Object&gt;&gt;&gt; resultHandler)</h4>
                                <p> Lookups for a single record.
 <p>
 The filter is a  taking a <a href="../../../../../../cheatsheet/Record.html">Record</a> as argument and returning a boolean. You should see it
 as an <code>accept</code> method of a filter. This method return a record passing the filter.
 <p>
 This method only looks for records with a <code>UP</code> status.
   <DL><DT><B>Parameters:</B></DT><DD><code>filter</code> -  the filter, must not be <code>null</code>. To return all records, use a function accepting all records</DD><DD><code>resultHandler</code> -  the result handler called when the lookup has been completed. When there are no matching record, the operation succeed, but the async result has no result.</DD></DL></p>
                            </li>
                        </ul>
                    
                        <a name="getRecord(java.util.function.Function<Map<String, Object>, Boolean>, boolean, Handler<AsyncResult<Map<String, Object>>>)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>void <strong>getRecord</strong>(java.util.function.Function&lt;java.util.Map&lt;java.lang.String, java.lang.Object&gt;, java.lang.Boolean&gt; filter, boolean includeOutOfService, io.vertx.core.Handler&lt;io.vertx.core.AsyncResult&lt;java.util.Map&lt;java.lang.String, java.lang.Object&gt;&gt;&gt; resultHandler)</h4>
                                <p> Lookups for a single record.
 <p>
 The filter is a  taking a <a href="../../../../../../cheatsheet/Record.html">Record</a> as argument and returning a boolean. You should see it
 as an <code>accept</code> method of a filter. This method return a record passing the filter.
 <p>
 Unlike <a href='../../../../io/vertx/groovy/servicediscovery/ServiceDiscovery.html#getRecord' title='ServiceDiscovery.getRecord'>ServiceDiscovery.getRecord</a>, this method may accept records with a <code>OUT OF SERVICE</code>
 status, if the <code>includeOutOfService</code> parameter is set to <code>true</code>.
   <DL><DT><B>Parameters:</B></DT><DD><code>filter</code> -  the filter, must not be <code>null</code>. To return all records, use a function accepting all records</DD><DD><code>includeOutOfService</code> -  whether or not the filter accepts <code>OUT OF SERVICE</code> records</DD><DD><code>resultHandler</code> -  the result handler called when the lookup has been completed. When there are no matching record, the operation succeed, but the async result has no result.</DD></DL></p>
                            </li>
                        </ul>
                    
                        <a name="getRecords(Map<String, Object>, Handler<AsyncResult<List<Map<String, Object>>>>)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>void <strong>getRecords</strong>(java.util.Map&lt;java.lang.String, java.lang.Object&gt; filter, io.vertx.core.Handler&lt;io.vertx.core.AsyncResult&lt;java.util.List&lt;java.util.Map&lt;java.lang.String, java.lang.Object&gt;&gt;&gt;&gt; resultHandler)</h4>
                                <p> Lookups for a set of records. Unlike <a href='../../../../io/vertx/groovy/servicediscovery/ServiceDiscovery.html#getRecord' title='ServiceDiscovery.getRecord'>ServiceDiscovery.getRecord</a>, this method returns all matching
 records.
   <DL><DT><B>Parameters:</B></DT><DD><code>filter</code> -  the filter - see <a href='../../../../io/vertx/groovy/servicediscovery/ServiceDiscovery.html#getRecord' title='ServiceDiscovery.getRecord'>ServiceDiscovery.getRecord</a></DD><DD><code>resultHandler</code> -  handler called when the lookup has been completed. When there are no matching record, the operation succeed, but the async result has an empty list as result.</DD></DL></p>
                            </li>
                        </ul>
                    
                        <a name="getRecords(java.util.function.Function<Map<String, Object>, Boolean>, Handler<AsyncResult<List<Map<String, Object>>>>)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>void <strong>getRecords</strong>(java.util.function.Function&lt;java.util.Map&lt;java.lang.String, java.lang.Object&gt;, java.lang.Boolean&gt; filter, io.vertx.core.Handler&lt;io.vertx.core.AsyncResult&lt;java.util.List&lt;java.util.Map&lt;java.lang.String, java.lang.Object&gt;&gt;&gt;&gt; resultHandler)</h4>
                                <p> Lookups for a set of records. Unlike <a href='../../../../io/vertx/groovy/servicediscovery/ServiceDiscovery.html#getRecord' title='ServiceDiscovery.getRecord'>ServiceDiscovery.getRecord</a>, this method returns all matching
 records.
 <p>
 The filter is a  taking a <a href="../../../../../../cheatsheet/Record.html">Record</a> as argument and returning a boolean. You should see it
 as an <code>accept</code> method of a filter. This method return a record passing the filter.
 <p>
 This method only looks for records with a <code>UP</code> status.
   <DL><DT><B>Parameters:</B></DT><DD><code>filter</code> -  the filter, must not be <code>null</code>. To return all records, use a function accepting all records</DD><DD><code>resultHandler</code> -  handler called when the lookup has been completed. When there are no matching record, the operation succeed, but the async result has an empty list as result.</DD></DL></p>
                            </li>
                        </ul>
                    
                        <a name="getRecords(java.util.function.Function<Map<String, Object>, Boolean>, boolean, Handler<AsyncResult<List<Map<String, Object>>>>)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>void <strong>getRecords</strong>(java.util.function.Function&lt;java.util.Map&lt;java.lang.String, java.lang.Object&gt;, java.lang.Boolean&gt; filter, boolean includeOutOfService, io.vertx.core.Handler&lt;io.vertx.core.AsyncResult&lt;java.util.List&lt;java.util.Map&lt;java.lang.String, java.lang.Object&gt;&gt;&gt;&gt; resultHandler)</h4>
                                <p> Lookups for a set of records. Unlike <a href='../../../../io/vertx/groovy/servicediscovery/ServiceDiscovery.html#getRecord' title='ServiceDiscovery.getRecord'>ServiceDiscovery.getRecord</a>, this method returns all matching
 records.
 <p>
 The filter is a  taking a <a href="../../../../../../cheatsheet/Record.html">Record</a> as argument and returning a boolean. You should see it
 as an <code>accept</code> method of a filter. This method return a record passing the filter.
 <p>
 Unlike <a href='../../../../io/vertx/groovy/servicediscovery/ServiceDiscovery.html#getRecords' title='ServiceDiscovery.getRecords'>ServiceDiscovery.getRecords</a>, this method may accept records with a <code>OUT OF SERVICE</code>
 status, if the <code>includeOutOfService</code> parameter is set to <code>true</code>.
   <DL><DT><B>Parameters:</B></DT><DD><code>filter</code> -  the filter, must not be <code>null</code>. To return all records, use a function accepting all records</DD><DD><code>includeOutOfService</code> -  whether or not the filter accepts <code>OUT OF SERVICE</code> records</DD><DD><code>resultHandler</code> -  handler called when the lookup has been completed. When there are no matching record, the operation succeed, but the async result has an empty list as result.</DD></DL></p>
                            </li>
                        </ul>
                    
                        <a name="getReference(Map<String, Object>)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4><a href='../../../../io/vertx/groovy/servicediscovery/ServiceReference.html'>ServiceReference</a> <strong>getReference</strong>(java.util.Map&lt;java.lang.String, java.lang.Object&gt; record = [:])</h4>
                                <p> Gets a service reference from the given record.
   <DL><DT><B>Returns:</B></DT><DD>the service reference, that allows retrieving the service object. Once called the service reference is cached, and need to be released.</DD></DL><DL><DT><B>Parameters:</B></DT><DD><code>record</code> -  the chosen record (see <a href="../../../../../../cheatsheet/Record.html">Record</a>)</DD></DL></p>
                            </li>
                        </ul>
                    
                        <a name="getReferenceWithConfiguration(Map<String, Object>, Map<String, Object>)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4><a href='../../../../io/vertx/groovy/servicediscovery/ServiceReference.html'>ServiceReference</a> <strong>getReferenceWithConfiguration</strong>(java.util.Map&lt;java.lang.String, java.lang.Object&gt; record = [:], java.util.Map&lt;java.lang.String, java.lang.Object&gt; configuration)</h4>
                                <p> Gets a service reference from the given record, the reference is configured with the given json object.
   <DL><DT><B>Returns:</B></DT><DD>the service reference, that allows retrieving the service object. Once called the service reference is cached, and need to be released.</DD></DL><DL><DT><B>Parameters:</B></DT><DD><code>record</code> -  the chosen record (see <a href="../../../../../../cheatsheet/Record.html">Record</a>)</DD><DD><code>configuration</code> -  the configuration</DD></DL></p>
                            </li>
                        </ul>
                    
                        <a name="options()"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>java.util.Map&lt;java.lang.String, java.lang.Object&gt; <strong>options</strong>()</h4>
                                <p>
   <DL><DT><B>Returns:</B></DT><DD>the discovery options. Modifying the returned object would not update the discovery service configuration. This object should be considered as read-only. (see <a href="../../../../../../cheatsheet/ServiceDiscoveryOptions.html">ServiceDiscoveryOptions</a>)</DD></DL></p>
                            </li>
                        </ul>
                    
                        <a name="publish(Map<String, Object>, Handler<AsyncResult<Map<String, Object>>>)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>void <strong>publish</strong>(java.util.Map&lt;java.lang.String, java.lang.Object&gt; record = [:], io.vertx.core.Handler&lt;io.vertx.core.AsyncResult&lt;java.util.Map&lt;java.lang.String, java.lang.Object&gt;&gt;&gt; resultHandler)</h4>
                                <p> Publishes a record.
   <DL><DT><B>Parameters:</B></DT><DD><code>record</code> -  the record (see <a href="../../../../../../cheatsheet/Record.html">Record</a>)</DD><DD><code>resultHandler</code> -  handler called when the operation has completed (successfully or not). In case of success, the passed record has a registration id required to modify and un-register the service.</DD></DL></p>
                            </li>
                        </ul>
                    
                        <a name="registerServiceExporter(io.vertx.groovy.servicediscovery.spi.ServiceExporter, Map<String, Object>)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4><a href='../../../../io/vertx/groovy/servicediscovery/ServiceDiscovery.html'>ServiceDiscovery</a> <strong>registerServiceExporter</strong>(<a href='../../../../io/vertx/groovy/servicediscovery/spi/ServiceExporter.html'>ServiceExporter</a> exporter, java.util.Map&lt;java.lang.String, java.lang.Object&gt; configuration)</h4>
                                <p> Registers a discovery bridge. Exporters let you integrate other discovery technologies in this service
 discovery.
   <DL><DT><B>Returns:</B></DT><DD>the current <a href='../../../../io/vertx/groovy/servicediscovery/ServiceDiscovery.html' title='ServiceDiscovery'>ServiceDiscovery</a></DD></DL><DL><DT><B>Parameters:</B></DT><DD><code>exporter</code> -  the service exporter</DD><DD><code>configuration</code> -  the optional configuration</DD></DL></p>
                            </li>
                        </ul>
                    
                        <a name="registerServiceExporter(io.vertx.groovy.servicediscovery.spi.ServiceExporter, Map<String, Object>, Handler<AsyncResult<Void>>)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4><a href='../../../../io/vertx/groovy/servicediscovery/ServiceDiscovery.html'>ServiceDiscovery</a> <strong>registerServiceExporter</strong>(<a href='../../../../io/vertx/groovy/servicediscovery/spi/ServiceExporter.html'>ServiceExporter</a> exporter, java.util.Map&lt;java.lang.String, java.lang.Object&gt; configuration, io.vertx.core.Handler&lt;io.vertx.core.AsyncResult&lt;java.lang.Void&gt;&gt; completionHandler)</h4>
                                <p> Registers a discovery bridge. Exporters let you integrate other discovery technologies in this service
 discovery.
   <DL><DT><B>Returns:</B></DT><DD>the current <a href='../../../../io/vertx/groovy/servicediscovery/ServiceDiscovery.html' title='ServiceDiscovery'>ServiceDiscovery</a></DD></DL><DL><DT><B>Parameters:</B></DT><DD><code>exporter</code> -  the service exporter</DD><DD><code>configuration</code> -  the optional configuration</DD><DD><code>completionHandler</code> -  handler notified when the exporter has been correctly initialized.</DD></DL></p>
                            </li>
                        </ul>
                    
                        <a name="registerServiceImporter(io.vertx.groovy.servicediscovery.spi.ServiceImporter, Map<String, Object>)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4><a href='../../../../io/vertx/groovy/servicediscovery/ServiceDiscovery.html'>ServiceDiscovery</a> <strong>registerServiceImporter</strong>(<a href='../../../../io/vertx/groovy/servicediscovery/spi/ServiceImporter.html'>ServiceImporter</a> importer, java.util.Map&lt;java.lang.String, java.lang.Object&gt; configuration)</h4>
                                <p> Registers a discovery service importer. Importers let you integrate other discovery technologies in this service
 discovery.
   <DL><DT><B>Returns:</B></DT><DD>the current <a href='../../../../io/vertx/groovy/servicediscovery/ServiceDiscovery.html' title='ServiceDiscovery'>ServiceDiscovery</a></DD></DL><DL><DT><B>Parameters:</B></DT><DD><code>importer</code> -  the service importer</DD><DD><code>configuration</code> -  the optional configuration</DD></DL></p>
                            </li>
                        </ul>
                    
                        <a name="registerServiceImporter(io.vertx.groovy.servicediscovery.spi.ServiceImporter, Map<String, Object>, Handler<AsyncResult<Void>>)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4><a href='../../../../io/vertx/groovy/servicediscovery/ServiceDiscovery.html'>ServiceDiscovery</a> <strong>registerServiceImporter</strong>(<a href='../../../../io/vertx/groovy/servicediscovery/spi/ServiceImporter.html'>ServiceImporter</a> importer, java.util.Map&lt;java.lang.String, java.lang.Object&gt; configuration, io.vertx.core.Handler&lt;io.vertx.core.AsyncResult&lt;java.lang.Void&gt;&gt; completionHandler)</h4>
                                <p> Registers a discovery service importer. Importers let you integrate other discovery technologies in this service
 discovery.
   <DL><DT><B>Returns:</B></DT><DD>the current <a href='../../../../io/vertx/groovy/servicediscovery/ServiceDiscovery.html' title='ServiceDiscovery'>ServiceDiscovery</a></DD></DL><DL><DT><B>Parameters:</B></DT><DD><code>importer</code> -  the service importer</DD><DD><code>configuration</code> -  the optional configuration</DD><DD><code>completionHandler</code> -  handler call when the importer has finished its initialization and initial imports</DD></DL></p>
                            </li>
                        </ul>
                    
                        <a name="release(io.vertx.groovy.servicediscovery.ServiceReference)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>boolean <strong>release</strong>(<a href='../../../../io/vertx/groovy/servicediscovery/ServiceReference.html'>ServiceReference</a> reference)</h4>
                                <p> Releases the service reference.
   <DL><DT><B>Returns:</B></DT><DD>whether or not the reference has been released.</DD></DL><DL><DT><B>Parameters:</B></DT><DD><code>reference</code> -  the reference to release, must not be <code>null</code></DD></DL></p>
                            </li>
                        </ul>
                    
                        <a name="releaseServiceObject(io.vertx.groovy.servicediscovery.ServiceDiscovery, java.lang.Object)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>static&nbsp;void <strong>releaseServiceObject</strong>(<a href='../../../../io/vertx/groovy/servicediscovery/ServiceDiscovery.html'>ServiceDiscovery</a> discovery, java.lang.Object svcObject)</h4>
                                <p> Release the service object retrieved using <code>get</code> methods from the service type interface.
 It searches for the reference associated with the given object and release it.
   <DL><DT><B>Parameters:</B></DT><DD><code>discovery</code> -  the service discovery</DD><DD><code>svcObject</code> -  the service object</DD></DL></p>
                            </li>
                        </ul>
                    
                        <a name="unpublish(java.lang.String, Handler<AsyncResult<Void>>)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>void <strong>unpublish</strong>(java.lang.String id, io.vertx.core.Handler&lt;io.vertx.core.AsyncResult&lt;java.lang.Void&gt;&gt; resultHandler)</h4>
                                <p> Un-publishes a record.
   <DL><DT><B>Parameters:</B></DT><DD><code>id</code> -  the registration id</DD><DD><code>resultHandler</code> -  handler called when the operation has completed (successfully or not).</DD></DL></p>
                            </li>
                        </ul>
                    
                        <a name="update(Map<String, Object>, Handler<AsyncResult<Map<String, Object>>>)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>void <strong>update</strong>(java.util.Map&lt;java.lang.String, java.lang.Object&gt; record = [:], io.vertx.core.Handler&lt;io.vertx.core.AsyncResult&lt;java.util.Map&lt;java.lang.String, java.lang.Object&gt;&gt;&gt; resultHandler)</h4>
                                <p> Updates the given record. The record must has been published, and has it's registration id set.
   <DL><DT><B>Parameters:</B></DT><DD><code>record</code> -  the updated record (see <a href="../../../../../../cheatsheet/Record.html">Record</a>)</DD><DD><code>resultHandler</code> -  handler called when the lookup has been completed.</DD></DL></p>
                            </li>
                        </ul>
                    
                </li>
            </ul>
            
        </li>
    </ul>
</div>

<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
    <!--   -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
    <!--   -->
</a>
    <ul class="navList" title="Navigation">
        <li><a href="../../../../overview-summary.html">Overview</a></li>
        <li><a href="package-summary.html">Package</a></li>
        <li class="navBarCell1Rev">Class</li>
        <li><a href="../../../../deprecated-list.html">Deprecated</a></li>
        <li><a href="../../../../index-all.html">Index</a></li>
        <li><a href="../../../../help-doc.html">Help</a></li>
    </ul>
</div>

<div class="subNav">
    <div>
        <ul class="navList">
            <li><a href="../../../../index.html?io/vertx/groovy/servicediscovery/ServiceDiscovery" target="_top">Frames</a></li>
            <li><a href="ServiceDiscovery.html" target="_top">No Frames</a></li>
        </ul>
    </div>
    <div>
        <ul class="subNavList">
            <li>Summary:&nbsp;</li>
            Nested&nbsp;&nbsp;&nbsp;Field&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<li><a href="#constructor_summary">Constructor</a></li>&nbsp;&nbsp;&nbsp;<li><a href="#method_summary">Method</a></li>&nbsp;&nbsp;&nbsp;
        </ul>
        <ul class="subNavList">
            <li>&nbsp;|&nbsp;Detail:&nbsp;</li>
            Field&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<li><a href="#constructor_detail">Constructor</a></li>&nbsp;&nbsp;&nbsp;<li><a href="#method_detail">Method</a></li>&nbsp;&nbsp;&nbsp;
        </ul>
    </div>
    <p>Groovy Documentation</p>
    <a name="skip-navbar_bottom">
        <!--   -->
    </a>
    </div>
</div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>